package com.sisgesbyte.services.sistema;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.dao.seguridad.PermisoRolTablaDao;
import com.sisgesbyte.data.entity.seguridad.TablaRestriccionesEntity;
import com.sisgesbyte.services.sistema.bean.AccesoTabla;
import com.sisgesbyte.services.sistema.bean.TablaPermisosResponse;

@Stateless
public class PermisosTablaImpl implements PermisosTabla {

	@EJB
	private PermisoRolTablaDao permisoRolTabla;

	@Override
	public TablaPermisosResponse listarPermisosTabla(int codRol, String idTransaccion) {

		List<TablaRestriccionesEntity> lisPermisos = null;

		TablaPermisosResponse response = new TablaPermisosResponse();

		try {

			response.setIdTransaccion(idTransaccion);
			try {
				lisPermisos = permisoRolTabla.listarPermisosTabla(codRol);
			} catch (Exception e) {
				System.out.println("Hubo un problema al cargar permisos de EJB");
				response.setCodigoRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_COD_IDT6);
				response.setMensajeRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_MSJ_IDT6);
			}

			if (lisPermisos.size() > 0) {

				List<AccesoTabla> lista = new ArrayList<AccesoTabla>();
				
				for (TablaRestriccionesEntity ls : lisPermisos) {
					AccesoTabla accesoTabla = new AccesoTabla();
					accesoTabla.setId(ls.getId());
					accesoTabla.setTabla(ls.getNombre());
					accesoTabla.setVer(ls.getVer());
					accesoTabla.setActualizar(ls.getActualizar());
					accesoTabla.setEliminar(ls.getEliminar());
					lista.add(accesoTabla);
				}
				response.setListaAccesosTabla(lista);
				response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
				response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			} else {
				response.setCodigoRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_COD_IDF6);
				response.setMensajeRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_MSJ_IDF6);
			}
		} catch (Exception e) {
			System.out.println("Hubo un problema en el Proceso del listarPermisosTabla ");
			response.setCodigoRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_COD_IDT6);
			response.setMensajeRespuesta(ConstantesInternasSistema.PERMISOS_TABLA_MSJ_IDT6);
		}
		return response;
	}

}
